package com.yitao.cms.utils;

import com.github.binarywang.java.emoji.EmojiConverter;
import org.apache.commons.lang.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Function:
 * Date: 2019/5/30
 *
 * @author skipper
 * @desc
 * @see
 */
public class EmojiUtils {


    /**
     * 传入一个字符串
     *
     * @param str
     * @return
     */
    public static String EmojiFilter(String str) {
        if (hasEmoji(str)) {
            EmojiConverter emojiConverter = EmojiConverter.getInstance();
            return emojiConverter.toHtml(str);
        }
        return str;
    }

    /**
     * 正则验证是否包含表情包
     * @param content
     * @return
     */
    public static boolean hasEmoji(String content){
        Pattern pattern = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]");
        Matcher matcher = pattern.matcher(content);
        return matcher.find();
    }

    /**
     * 字符转换会表情包
     *
     * @param str
     * @return
     */
    public static String toUnicode(String str) {
        if (StringUtils.isNotBlank(str)) {
            if (str.contains("&#")) {
                EmojiConverter emojiConverter = EmojiConverter.getInstance();
                return emojiConverter.toUnicode(str);
            }
        }
        return str;
    }

    public static void main(String[] args) {
        String detail = "每每赶上丝芙兰打折总要囤一些套装啦！又划算又可以尝试新产品，顺便把\\n积分也攒上去咯！ \uD83E\uDD52这套套盒打完折基本上也就是一瓶150ml的钱，还是挺划算哒，里面每瓶50ml，分别是： \uD83C\uDF83黑泥清洁面膜 \uD83C\uDF83矿物质发热面膜 \uD83C\uDF8324K金面膜 \uD83C\uDF83青瓜补水面膜 \uD83C\uDF83玫瑰修复面膜 \uD83C\uDF83南瓜修整表皮面膜 \uD83E\uDD52这套彼得罗夫面膜6瓶套装里面影儿本身有2个，一个是黄瓜的，一个是玫瑰的，其余的被朋友种草了金的，感觉黑泥也用得到，就直接入啦！ \uD83E\uDD52很多人说他家的面膜没有用，其实我觉得作用还是有的，只是比较基础，没有立竿见影而已 \uD83E\uDD52我个人超爱青瓜面膜，冰冰凉凉很有镇静作用，用作晒后修复或者舒缓肌肤都很不错，喜欢冰感的还可以把它放在冰箱里 \uD83E\uDD52玫瑰不如青瓜好用，但是补水也是很OK哒，而且没什么负担，便宜大碗，无聊时候敷一敷很方便哒～ \uD83C\uDF83听说南瓜的特别刺激，还在考虑要怎么用_(:з」∠)_难道敷手？ \uD83E\uDD52另外谁来告诉我一下面膜太多了永远用不完但还在买要怎么处理？男朋友会喜欢吃吗？";
        String result = EmojiUtils.EmojiFilter(detail);
        System.out.println(result);
        String de = EmojiUtils.toUnicode(result);
        System.out.println(de);

    }


}
